package com.lecyon.farm.vo.add;

import com.lecyon.farm.base.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;

/**
 * 新增数据核检记录Vo
 *
 * @author YaoZheng
 * @since 2020-04-25
 */
@Data
@ApiModel(value = "新增数据核检记录Vo")
public class AddDataVerificationVo extends BaseVo {

    @ApiModelProperty(value = "主键Id")
    private Long id;

    @ApiModelProperty(value = "目标平台")
    @NotBlank(message = "目标平台不能为空")
    private String targetPlatform;

    @ApiModelProperty(value = "作业类型")
    private Integer activityType;

    @ApiModelProperty(value = "作业条数")
    @Min(value = 0, message = "作业条数不能小于{value}")
    private Integer activityQuantity;

    @ApiModelProperty(value = "地块总面积")
    @DecimalMin(value = "0", message = "地块总面积不能小于{value}")
    private BigDecimal totalArea;

    @ApiModelProperty(value = "总合格面积")
    @DecimalMin(value = "0", message = "总合格面积不能小于{value}")
    private BigDecimal totalAcceptableArea;

    @ApiModelProperty(value = "总重复面积")
    @DecimalMin(value = "0", message = "总重复面积不能小于{value}")
    private BigDecimal totalRepeatArea;

    @ApiModelProperty(value = "设备条数")
    @Min(value = 0, message = "设备条数不能小于{value}")
    private Integer operatingEquipmentQuantity;

    @ApiModelProperty(value = "轨迹条数")
    @Min(value = 0, message = "轨迹条数不能小于{value}")
    private Integer traceQuantity;

    @ApiModelProperty(value = "地块条数")
    @Min(value = 0, message = "地块条数不能小于{value}")
    private Integer plotQuantity;

    @ApiModelProperty(value = "图片张数")
    @Min(value = 0, message = "图片张数不能小于{value}")
    private Integer photoQuantity;

    @ApiModelProperty(value = "重复数据条数")
    @Min(value = 0, message = "重复数据条数不能小于{value}")
    private Integer jobOverLapQuantity;

    @ApiModelProperty(value = "同步日期")
    private LocalDate syncDate = LocalDate.now(ZoneId.systemDefault());

}
